Bus structures have been found to be unsuitable for some system on chip (SOC) applications (SOCs). With increases in circuit integration, transactions can become blocked and increased capacitance can create signaling problems. In place of a bus structure, a network on chip (NOC) is sometimes used to support data communications between components on the chip.
An NOC generally includes a collection of switches that route packets from source circuits (“sources”) on the chip to destination circuits (“destinations”) on the chip. The layout of the switches in the chip supports packet transmission from the desired sources to the desired destinations. A packet may traverse multiple switches in transmission from a source to a destination. Each switch can be connected to one or more other switches in the network and routes an input packet to one of the connected switches or to the destination.
The switches of some NOCs employ routing tables to determine on which output port an input packet should be routed. The routing tables can be either fixed or programmable, and at each switch, the switch looks-up the output port based on the destination. Other approaches may use source-based routing in which the packet includes routing information for the switches.